<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>结构赋值</title>
</head>
<body>
    <script>

    // 什么是结构赋值
        // 1. 可以用括号直接访问 json/array 中的变量
        
    // ... 延展操作符
    // 把一堆数据, 全部抄到某个或地方
        // json -> 把一堆key:vlaue,抄到新的变量下
        // array -> 把一个数组抄到另一个数组中
        // array 结构赋值 -> 接受数组剩余的所有参数
        // 函数 -> 接受函数中剩余的所有参数
        
    // let person = { name: '石兴龙', balance: { yue: 100, yuebao: 50, }, age: 18, id: 'xx-xx00--' };

    // let { name, age, id, balance: { yue } } = person
    // console.log(
    //     name, age, yue
    // )

    // let dataList = [122,3332,3,4,5,6,7,8,9]
    // let [n1, n2, ...a ] = dataList
    // console.log(
    //     n1, n2, a, n
    // )

    // 把一堆数据, 全部抄到某个或地方
    
    // let a1 = ['a', 'b', 'c', ...dataList];
    // console.log(a1)
    // let user = {
    //     nickname: '石兴龙',
    //     age: 18,
    //     job: 'xxx'
    // }
    
    // let result = {
    //     success: true,
    //     msg: '',
    //     data: {
    //         ...user
    //     }
    // }
    // console.log(result.data.nickname)
    // user.nickname = 'xxx'
    // console.log(result.data.nickname)


    // function sum(a,b) {
    //     console.log(arguments)
    //     if (arguments.length > 2) {
    //         let count = 0
    //         for (let i of arguments) {
    //             count += i;
    //         }
    //         return count
    //     } else if (arguments.length === 2) {
    //         return a+b
    //     }
    // }
    function sum(a, b, ...args) {
        let count = 0;
        for (let i of args) {
            count += i;
        }
        return a + b + count
    }
    console.log(
        sum(1, 2, 4,5,8,456,48,789,456,48,132)
    )

    // 一个函数是干什么的 / 干了什么
    let ajax = function({
        method = 'GET',
        url, data, dataType,
        success,
        error
    }) {
        var xhr = new XMLHttpRequest();
        if (method.toUpperCase() === 'POST') {
            xhr.open(
                method,
                url,
                true
            )
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
            // 发送请求
            xhr.send(encodeParam(data))
        } else if (method.toUpperCase() === 'GET') {
            xhr.open(
                method,
                url + '?'+encodeParam(param),
                true
            )
            xhr.send()
        }

        // 接受返回值
        xhr.onreadystatechange = () => {
            if (xhr.readyState === 4) {
                if (xhr.status >= 200 && xhr.status <= 300 || xhr.status === 304) {
                    let res = xhr.response
                    if (dataType === 'json') {
                        res = JSON.parse(res);
                    }
                    success && success(res)
                } else {
                    error && error(xhr.response)
                }
            }
        }
    }

    </script>
</body>
</html>